
package classes;

import bd.*;
import java.util.ArrayList;
import java.util.*;
import java.sql.*;

public class Chamado {
    private int id;
    private java.util.Date dataAbertura;
    private java.util.Date dataEncerramento;
    private String descrProblema;
    private String descrSolucao;
    private Usuario usuarioAbertura;
    private Usuario usuarioEncerramento;
    private StatusChamado status;
    private CategoriaChamado categoria;
    private ArrayList<Anexo> listAnexos;

    public Chamado() {
        this.categoria=new CategoriaChamado();
        this.usuarioAbertura=new Usuario();
        this.usuarioEncerramento=new Usuario();
        this.status=new StatusChamado();
        this.listAnexos=new ArrayList<Anexo>();
    }

    public CategoriaChamado getCategoria() {
        return categoria;
    }

    public void setCategoria(CategoriaChamado categoria) {
        this.categoria = categoria;
    }

    public java.util.Date getDataAbertura() {
        return dataAbertura;
    }

    public void setDataAbertura(java.util.Date dataAbertura) {
        this.dataAbertura = dataAbertura;
    }

    public java.util.Date getDataEncerramento() {
        return dataEncerramento;
    }

    public void setDataEncerramento(java.util.Date dataEncerramento) {
        this.dataEncerramento = dataEncerramento;
    }

    public String getDescrProblema() {
        return descrProblema;
    }

    public void setDescrProblema(String descrProblema) {
        this.descrProblema = descrProblema;
    }

    public String getDescrSolucao() {
        return descrSolucao;
    }

    public void setDescrSolucao(String descrSolucao) {
        this.descrSolucao = descrSolucao;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public ArrayList<Anexo> getListAnexos() {
        return listAnexos;
    }

    public void setListAnexos(ArrayList<Anexo> listAnexos) {
        this.listAnexos = listAnexos;
    }

    public StatusChamado getStatus() {
        return status;
    }

    public void setStatus(StatusChamado status) {
        this.status = status;
    }

    public Usuario getUsuarioAbertura() {
        return usuarioAbertura;
    }

    public void setUsuarioAbertura(Usuario usuarioAbertura) {
        this.usuarioAbertura = usuarioAbertura;
    }

    public Usuario getUsuarioEncerramento() {
        return usuarioEncerramento;
    }

    public void setUsuarioEncerramento(Usuario usuarioEncerramento) {
        this.usuarioEncerramento = usuarioEncerramento;
    }

    public boolean salvar(Usuario usuarioLogado)
    {
        return ChamadoBD.salvar(this, usuarioLogado);
    }

    public boolean alterar(Usuario usuarioLogado)
    {
        return ChamadoBD.alterar(this, usuarioLogado);
    }

    public boolean deletar(int id)
    {
        return ChamadoBD.deletar(this.id);
    }

    public Chamado selecionar(int id)
    {
        return ChamadoBD.selecionar(this.id);
    }

    public ArrayList<Chamado> selecionar()
    {
        return ChamadoBD.selecionar();
    }

    public Chamado getLastIdChamado()
    {
        return ChamadoBD.getLastIdChamado();
    }

    public ArrayList<Chamado> getChamadosSemAtendimento()
    {
        return ChamadoBD.getChamadosSemAtendimento();
    }

    public ArrayList<Chamado> getChamadosEmAtendimento(Usuario usuarioLogado)
    {
        return ChamadoBD.getChamadosEmAtendimento(usuarioLogado.getId());
    }

    public ArrayList<String> getAssentamentosChamado()
    {
        return ChamadoBD.getAssentamentosChamado(this.getId());
    }

    public boolean insertAssentamentoChamado(String assentamento)
    {
        return ChamadoBD.insertAssentamentoChamado(assentamento, this.id);
    }


}
